//在字符串 s 中找出第一个只出现一次的字符。如果没有，返回一个单空格。 s 只包含小写字母。 
//
// 示例: 
//
// s = "abaccdeff"
//返回 "b"
//
//s = "" 
//返回 " "
// 
//
// 
//
// 限制： 
//
// 0 <= s 的长度 <= 50000 
// Related Topics 哈希表 
// 👍 64 👎 0

package leetcode.editor.cn;

import java.util.LinkedHashMap;
import java.util.Map;

//Java：第一个只出现一次的字符
public class DiYiGeZhiChuXianYiCiDeZiFuLcof{
    public static void main(String[] args) {
        Solution solution = new DiYiGeZhiChuXianYiCiDeZiFuLcof().new Solution();
        
    }
    
    //leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public char firstUniqChar(String s) {
        //暴力法
        //数组哈希表
        //有序的哈希表
        Map<Character,Boolean> dic = new LinkedHashMap();
        char[] sChar = s.toCharArray();
        for ( char c: sChar ){
            dic.put( c,!dic.containsKey(c) );
        }
        for ( Map.Entry<Character,Boolean> d:dic.entrySet() ){
            if ( d.getValue() ){
                return d.getKey();
            }
        }
        return ' ';
    }
}
//leetcode submit region end(Prohibit modification and deletion)

}
